package com.feng.zhihao.apigeteway.entity;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * ProjectInfo entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "PROJECT_INFO")

public class ProjectInfo implements java.io.Serializable {

	// Fields

	private String projectId;
	private InterfaceFieldInfo interfaceFieldInfoByInterfaceFlowIdFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByReqInterfaceSignFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByInterfaceIdentificationFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByInterfaceCodeFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByChannelFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByInterfaceMessageFieldId;
	private InterfaceFieldInfo interfaceFieldInfoByResInterfaceSignFieldId;
	private String projectName;
	private String contextPath;
	private Integer projectState;
	private String interfaceParamsType;
	private String interfaceReqParamsPosition;
	private String interfaceResParamsPosition;
	private String interfaceSuccessCodeValue;
	private String reqSignType;
	private String reqSignPublicKey;
	private String reqSignPrivateKey;
	private String reqSignKey;
	private String reqSignIv;
	private String resSignType;
	private String resSignPublicKey;
	private String resSignPrivateKey;
	private String resSignKey;
	private String resSignIv;
	private String reqEncryptionType;
	private String reqEncryptionKey;
	private String reqEncryptionIv;
	private String reqEncryptionPublicKey;
	private String reqEncryptionPrivateKey;
	private String resEncryptionType;
	private String resEncryptionKey;
	private String resEncryptionIv;
	private String resEncryptionPublicKey;
	private String resEncryptionPrivateKey;
	private Set<ChannelInterfaceCase> channelInterfaceCases = new HashSet<ChannelInterfaceCase>(0);
	private Set<InterfaceFieldInfo> interfaceFieldInfos = new HashSet<InterfaceFieldInfo>(0);
	private Set<InterfaceInfo> interfaceInfos = new HashSet<InterfaceInfo>(0);
	private Set<ChannelProject> channelProjects = new HashSet<ChannelProject>(0);
	private Set<ModularInfo> modularInfos = new HashSet<ModularInfo>(0);
	private Set<ChannelInterface> channelInterfaces = new HashSet<ChannelInterface>(0);

	// Constructors

	/** default constructor */
	public ProjectInfo() {
	}

	/** minimal constructor */
	public ProjectInfo(String projectId) {
		this.projectId = projectId;
	}

	/** full constructor */
	public ProjectInfo(String projectId, InterfaceFieldInfo interfaceFieldInfoByInterfaceFlowIdFieldId,
			InterfaceFieldInfo interfaceFieldInfoByReqInterfaceSignFieldId,
			InterfaceFieldInfo interfaceFieldInfoByInterfaceIdentificationFieldId,
			InterfaceFieldInfo interfaceFieldInfoByInterfaceCodeFieldId,
			InterfaceFieldInfo interfaceFieldInfoByChannelFieldId,
			InterfaceFieldInfo interfaceFieldInfoByInterfaceMessageFieldId,
			InterfaceFieldInfo interfaceFieldInfoByResInterfaceSignFieldId, String projectName, String contextPath,
			Integer projectState, String interfaceParamsType, String interfaceReqParamsPosition,
			String interfaceResParamsPosition, String interfaceSuccessCodeValue, String reqSignType,
			String reqSignPublicKey, String reqSignPrivateKey, String reqSignKey, String reqSignIv, String resSignType,
			String resSignPublicKey, String resSignPrivateKey, String resSignKey, String resSignIv,
			String reqEncryptionType, String reqEncryptionKey, String reqEncryptionIv, String reqEncryptionPublicKey,
			String reqEncryptionPrivateKey, String resEncryptionType, String resEncryptionKey, String resEncryptionIv,
			String resEncryptionPublicKey, String resEncryptionPrivateKey,
			Set<ChannelInterfaceCase> channelInterfaceCases, Set<InterfaceFieldInfo> interfaceFieldInfos,
			Set<InterfaceInfo> interfaceInfos, Set<ChannelProject> channelProjects, Set<ModularInfo> modularInfos,
			Set<ChannelInterface> channelInterfaces) {
		this.projectId = projectId;
		this.interfaceFieldInfoByInterfaceFlowIdFieldId = interfaceFieldInfoByInterfaceFlowIdFieldId;
		this.interfaceFieldInfoByReqInterfaceSignFieldId = interfaceFieldInfoByReqInterfaceSignFieldId;
		this.interfaceFieldInfoByInterfaceIdentificationFieldId = interfaceFieldInfoByInterfaceIdentificationFieldId;
		this.interfaceFieldInfoByInterfaceCodeFieldId = interfaceFieldInfoByInterfaceCodeFieldId;
		this.interfaceFieldInfoByChannelFieldId = interfaceFieldInfoByChannelFieldId;
		this.interfaceFieldInfoByInterfaceMessageFieldId = interfaceFieldInfoByInterfaceMessageFieldId;
		this.interfaceFieldInfoByResInterfaceSignFieldId = interfaceFieldInfoByResInterfaceSignFieldId;
		this.projectName = projectName;
		this.contextPath = contextPath;
		this.projectState = projectState;
		this.interfaceParamsType = interfaceParamsType;
		this.interfaceReqParamsPosition = interfaceReqParamsPosition;
		this.interfaceResParamsPosition = interfaceResParamsPosition;
		this.interfaceSuccessCodeValue = interfaceSuccessCodeValue;
		this.reqSignType = reqSignType;
		this.reqSignPublicKey = reqSignPublicKey;
		this.reqSignPrivateKey = reqSignPrivateKey;
		this.reqSignKey = reqSignKey;
		this.reqSignIv = reqSignIv;
		this.resSignType = resSignType;
		this.resSignPublicKey = resSignPublicKey;
		this.resSignPrivateKey = resSignPrivateKey;
		this.resSignKey = resSignKey;
		this.resSignIv = resSignIv;
		this.reqEncryptionType = reqEncryptionType;
		this.reqEncryptionKey = reqEncryptionKey;
		this.reqEncryptionIv = reqEncryptionIv;
		this.reqEncryptionPublicKey = reqEncryptionPublicKey;
		this.reqEncryptionPrivateKey = reqEncryptionPrivateKey;
		this.resEncryptionType = resEncryptionType;
		this.resEncryptionKey = resEncryptionKey;
		this.resEncryptionIv = resEncryptionIv;
		this.resEncryptionPublicKey = resEncryptionPublicKey;
		this.resEncryptionPrivateKey = resEncryptionPrivateKey;
		this.channelInterfaceCases = channelInterfaceCases;
		this.interfaceFieldInfos = interfaceFieldInfos;
		this.interfaceInfos = interfaceInfos;
		this.channelProjects = channelProjects;
		this.modularInfos = modularInfos;
		this.channelInterfaces = channelInterfaces;
	}

	// Property accessors
	@Id

	@Column(name = "PROJECT_ID", unique = true, nullable = false, length = 36)

	public String getProjectId() {
		return this.projectId;
	}

	public void setProjectId(String projectId) {
		this.projectId = projectId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "INTERFACE_FLOW_ID_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByInterfaceFlowIdFieldId() {
		return this.interfaceFieldInfoByInterfaceFlowIdFieldId;
	}

	public void setInterfaceFieldInfoByInterfaceFlowIdFieldId(
			InterfaceFieldInfo interfaceFieldInfoByInterfaceFlowIdFieldId) {
		this.interfaceFieldInfoByInterfaceFlowIdFieldId = interfaceFieldInfoByInterfaceFlowIdFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "REQ_INTERFACE_SIGN_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByReqInterfaceSignFieldId() {
		return this.interfaceFieldInfoByReqInterfaceSignFieldId;
	}

	public void setInterfaceFieldInfoByReqInterfaceSignFieldId(
			InterfaceFieldInfo interfaceFieldInfoByReqInterfaceSignFieldId) {
		this.interfaceFieldInfoByReqInterfaceSignFieldId = interfaceFieldInfoByReqInterfaceSignFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "INTERFACE_IDENTIFICATION_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByInterfaceIdentificationFieldId() {
		return this.interfaceFieldInfoByInterfaceIdentificationFieldId;
	}

	public void setInterfaceFieldInfoByInterfaceIdentificationFieldId(
			InterfaceFieldInfo interfaceFieldInfoByInterfaceIdentificationFieldId) {
		this.interfaceFieldInfoByInterfaceIdentificationFieldId = interfaceFieldInfoByInterfaceIdentificationFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "INTERFACE_CODE_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByInterfaceCodeFieldId() {
		return this.interfaceFieldInfoByInterfaceCodeFieldId;
	}

	public void setInterfaceFieldInfoByInterfaceCodeFieldId(
			InterfaceFieldInfo interfaceFieldInfoByInterfaceCodeFieldId) {
		this.interfaceFieldInfoByInterfaceCodeFieldId = interfaceFieldInfoByInterfaceCodeFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CHANNEL_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByChannelFieldId() {
		return this.interfaceFieldInfoByChannelFieldId;
	}

	public void setInterfaceFieldInfoByChannelFieldId(InterfaceFieldInfo interfaceFieldInfoByChannelFieldId) {
		this.interfaceFieldInfoByChannelFieldId = interfaceFieldInfoByChannelFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "INTERFACE_MESSAGE_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByInterfaceMessageFieldId() {
		return this.interfaceFieldInfoByInterfaceMessageFieldId;
	}

	public void setInterfaceFieldInfoByInterfaceMessageFieldId(
			InterfaceFieldInfo interfaceFieldInfoByInterfaceMessageFieldId) {
		this.interfaceFieldInfoByInterfaceMessageFieldId = interfaceFieldInfoByInterfaceMessageFieldId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "RES_INTERFACE_SIGN_FIELD_ID")

	public InterfaceFieldInfo getInterfaceFieldInfoByResInterfaceSignFieldId() {
		return this.interfaceFieldInfoByResInterfaceSignFieldId;
	}

	public void setInterfaceFieldInfoByResInterfaceSignFieldId(
			InterfaceFieldInfo interfaceFieldInfoByResInterfaceSignFieldId) {
		this.interfaceFieldInfoByResInterfaceSignFieldId = interfaceFieldInfoByResInterfaceSignFieldId;
	}

	@Column(name = "PROJECT_NAME", length = 512)

	public String getProjectName() {
		return this.projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	@Column(name = "CONTEXT_PATH", length = 128)

	public String getContextPath() {
		return this.contextPath;
	}

	public void setContextPath(String contextPath) {
		this.contextPath = contextPath;
	}

	@Column(name = "PROJECT_STATE")

	public Integer getProjectState() {
		return this.projectState;
	}

	public void setProjectState(Integer projectState) {
		this.projectState = projectState;
	}

	@Column(name = "INTERFACE_PARAMS_TYPE", length = 36)

	public String getInterfaceParamsType() {
		return this.interfaceParamsType;
	}

	public void setInterfaceParamsType(String interfaceParamsType) {
		this.interfaceParamsType = interfaceParamsType;
	}

	@Column(name = "INTERFACE_REQ_PARAMS_POSITION", length = 256)

	public String getInterfaceReqParamsPosition() {
		return this.interfaceReqParamsPosition;
	}

	public void setInterfaceReqParamsPosition(String interfaceReqParamsPosition) {
		this.interfaceReqParamsPosition = interfaceReqParamsPosition;
	}

	@Column(name = "INTERFACE_RES_PARAMS_POSITION", length = 256)

	public String getInterfaceResParamsPosition() {
		return this.interfaceResParamsPosition;
	}

	public void setInterfaceResParamsPosition(String interfaceResParamsPosition) {
		this.interfaceResParamsPosition = interfaceResParamsPosition;
	}

	@Column(name = "INTERFACE_SUCCESS_CODE_VALUE", length = 1024)

	public String getInterfaceSuccessCodeValue() {
		return this.interfaceSuccessCodeValue;
	}

	public void setInterfaceSuccessCodeValue(String interfaceSuccessCodeValue) {
		this.interfaceSuccessCodeValue = interfaceSuccessCodeValue;
	}

	@Column(name = "REQ_SIGN_TYPE", length = 36)

	public String getReqSignType() {
		return this.reqSignType;
	}

	public void setReqSignType(String reqSignType) {
		this.reqSignType = reqSignType;
	}

	@Column(name = "REQ_SIGN_PUBLIC_KEY", length = 65535)

	public String getReqSignPublicKey() {
		return this.reqSignPublicKey;
	}

	public void setReqSignPublicKey(String reqSignPublicKey) {
		this.reqSignPublicKey = reqSignPublicKey;
	}

	@Column(name = "REQ_SIGN_PRIVATE_KEY", length = 65535)

	public String getReqSignPrivateKey() {
		return this.reqSignPrivateKey;
	}

	public void setReqSignPrivateKey(String reqSignPrivateKey) {
		this.reqSignPrivateKey = reqSignPrivateKey;
	}

	@Column(name = "REQ_SIGN_KEY", length = 65535)

	public String getReqSignKey() {
		return this.reqSignKey;
	}

	public void setReqSignKey(String reqSignKey) {
		this.reqSignKey = reqSignKey;
	}

	@Column(name = "REQ_SIGN_IV", length = 65535)

	public String getReqSignIv() {
		return this.reqSignIv;
	}

	public void setReqSignIv(String reqSignIv) {
		this.reqSignIv = reqSignIv;
	}

	@Column(name = "RES_SIGN_TYPE", length = 36)

	public String getResSignType() {
		return this.resSignType;
	}

	public void setResSignType(String resSignType) {
		this.resSignType = resSignType;
	}

	@Column(name = "RES_SIGN_PUBLIC_KEY", length = 65535)

	public String getResSignPublicKey() {
		return this.resSignPublicKey;
	}

	public void setResSignPublicKey(String resSignPublicKey) {
		this.resSignPublicKey = resSignPublicKey;
	}

	@Column(name = "RES_SIGN_PRIVATE_KEY", length = 65535)

	public String getResSignPrivateKey() {
		return this.resSignPrivateKey;
	}

	public void setResSignPrivateKey(String resSignPrivateKey) {
		this.resSignPrivateKey = resSignPrivateKey;
	}

	@Column(name = "RES_SIGN_KEY", length = 65535)

	public String getResSignKey() {
		return this.resSignKey;
	}

	public void setResSignKey(String resSignKey) {
		this.resSignKey = resSignKey;
	}

	@Column(name = "RES_SIGN_IV", length = 65535)

	public String getResSignIv() {
		return this.resSignIv;
	}

	public void setResSignIv(String resSignIv) {
		this.resSignIv = resSignIv;
	}

	@Column(name = "REQ_ENCRYPTION_TYPE", length = 36)

	public String getReqEncryptionType() {
		return this.reqEncryptionType;
	}

	public void setReqEncryptionType(String reqEncryptionType) {
		this.reqEncryptionType = reqEncryptionType;
	}

	@Column(name = "REQ_ENCRYPTION_KEY", length = 65535)

	public String getReqEncryptionKey() {
		return this.reqEncryptionKey;
	}

	public void setReqEncryptionKey(String reqEncryptionKey) {
		this.reqEncryptionKey = reqEncryptionKey;
	}

	@Column(name = "REQ_ENCRYPTION_IV", length = 65535)

	public String getReqEncryptionIv() {
		return this.reqEncryptionIv;
	}

	public void setReqEncryptionIv(String reqEncryptionIv) {
		this.reqEncryptionIv = reqEncryptionIv;
	}

	@Column(name = "REQ_ENCRYPTION_PUBLIC_KEY", length = 65535)

	public String getReqEncryptionPublicKey() {
		return this.reqEncryptionPublicKey;
	}

	public void setReqEncryptionPublicKey(String reqEncryptionPublicKey) {
		this.reqEncryptionPublicKey = reqEncryptionPublicKey;
	}

	@Column(name = "REQ_ENCRYPTION_PRIVATE_KEY", length = 65535)

	public String getReqEncryptionPrivateKey() {
		return this.reqEncryptionPrivateKey;
	}

	public void setReqEncryptionPrivateKey(String reqEncryptionPrivateKey) {
		this.reqEncryptionPrivateKey = reqEncryptionPrivateKey;
	}

	@Column(name = "RES_ENCRYPTION_TYPE", length = 36)

	public String getResEncryptionType() {
		return this.resEncryptionType;
	}

	public void setResEncryptionType(String resEncryptionType) {
		this.resEncryptionType = resEncryptionType;
	}

	@Column(name = "RES_ENCRYPTION_KEY", length = 65535)

	public String getResEncryptionKey() {
		return this.resEncryptionKey;
	}

	public void setResEncryptionKey(String resEncryptionKey) {
		this.resEncryptionKey = resEncryptionKey;
	}

	@Column(name = "RES_ENCRYPTION_IV", length = 65535)

	public String getResEncryptionIv() {
		return this.resEncryptionIv;
	}

	public void setResEncryptionIv(String resEncryptionIv) {
		this.resEncryptionIv = resEncryptionIv;
	}

	@Column(name = "RES_ENCRYPTION_PUBLIC_KEY", length = 65535)

	public String getResEncryptionPublicKey() {
		return this.resEncryptionPublicKey;
	}

	public void setResEncryptionPublicKey(String resEncryptionPublicKey) {
		this.resEncryptionPublicKey = resEncryptionPublicKey;
	}

	@Column(name = "RES_ENCRYPTION_PRIVATE_KEY", length = 65535)

	public String getResEncryptionPrivateKey() {
		return this.resEncryptionPrivateKey;
	}

	public void setResEncryptionPrivateKey(String resEncryptionPrivateKey) {
		this.resEncryptionPrivateKey = resEncryptionPrivateKey;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<ChannelInterfaceCase> getChannelInterfaceCases() {
		return this.channelInterfaceCases;
	}

	public void setChannelInterfaceCases(Set<ChannelInterfaceCase> channelInterfaceCases) {
		this.channelInterfaceCases = channelInterfaceCases;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<InterfaceFieldInfo> getInterfaceFieldInfos() {
		return this.interfaceFieldInfos;
	}

	public void setInterfaceFieldInfos(Set<InterfaceFieldInfo> interfaceFieldInfos) {
		this.interfaceFieldInfos = interfaceFieldInfos;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<InterfaceInfo> getInterfaceInfos() {
		return this.interfaceInfos;
	}

	public void setInterfaceInfos(Set<InterfaceInfo> interfaceInfos) {
		this.interfaceInfos = interfaceInfos;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<ChannelProject> getChannelProjects() {
		return this.channelProjects;
	}

	public void setChannelProjects(Set<ChannelProject> channelProjects) {
		this.channelProjects = channelProjects;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<ModularInfo> getModularInfos() {
		return this.modularInfos;
	}

	public void setModularInfos(Set<ModularInfo> modularInfos) {
		this.modularInfos = modularInfos;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projectInfo")

	public Set<ChannelInterface> getChannelInterfaces() {
		return this.channelInterfaces;
	}

	public void setChannelInterfaces(Set<ChannelInterface> channelInterfaces) {
		this.channelInterfaces = channelInterfaces;
	}

}